//-----------------------------------------------------------------------------
// Name: Gun.h
// Auth: Dante Ratto, Robert Darty, & Paul Godfrey
// Desc: Sets up the guns, their details and models
//-----------------------------------------------------------------------------

#ifndef _GUN_
#define _GUN_

#include "SharedConstants.h"

#include <string>

//-----------------------------------------------------------------------------
// cGun:
//-----------------------------------------------------------------------------
class cGun
{
public:
	// Constructors:
	cGun();
	cGun(int, bool, enum eGunType);
	~cGun();

	// cGun Methods:

	//-----------------------------------------------------------------------------
	void SetActive(bool);
	// Desc: Sets gun active
	
	//-----------------------------------------------------------------------------
	bool GetActive();
	// Desc: Gets gun active status
	
	//-----------------------------------------------------------------------------
	int GetClipSize();
	// Desc: Gets gun clipsize
	
	//-----------------------------------------------------------------------------
	void Draw(float, float, float, float, float);
	// Desc: Draws gun
	
	//-----------------------------------------------------------------------------
	void Move(float x, float z, float y);
	// Desc: Moves gun
	
	//-----------------------------------------------------------------------------
	void SetPitch(float);
	// Desc: Sets gun pitch
	
	//-----------------------------------------------------------------------------
	void SetYaw(float);
	// Desc: Sets gun angle
	
	//-----------------------------------------------------------------------------
	eGunType GetType();
	// Desc: Gets gun type
	
	//-----------------------------------------------------------------------------
	int GetDamage();
	// Desc: Gets gun damage
	
private:
	// Members:
	int mClipSize;
	bool mActive;
	enum eGunType mType;
	float mPitch;
	float mYaw;
	float mXPosition;
	float mYPosition;
	float mZPosition;
};

//-----------------------------------------------------------------------------
// Functions:
//-----------------------------------------------------------------------------
cGun* GetGun();

#endif